package com.decorator;

import com.factory.Circle;
import com.factory.Rectangle;
import com.factory.Shape;
import com.factory.Square;

public class DecoratorPatternDemo {

	public static void main(String [] args)
	{
		Shape circle = new Circle();
		
		Shape redCircle = new RedShapeDecoretor(new Circle());
		
		Shape redRectangle = new RedShapeDecoretor(new Rectangle());
		System.out.println("Circle with nomal border");
		circle.draw();
		
		System.out.println();
		
		System.out.println("Circle of red border");
		redCircle.draw();
		
		System.out.println();
		
		System.out.println("Rectangle of red border");
		redRectangle.draw();
		
		System.out.println();
		
		System.out.println("Circle of red border, blue fill");		
		Shape circle1 = new RedShapeDecoretor(new BlueFill( new Circle()));
		circle1.draw();
		
		System.out.println();
		
		System.out.println("Circle of red border, blue fill, Yellow strip");		
		Shape circle2 = new RedShapeDecoretor(new BlueFill( new YellowStrip( new Circle())));
		circle2.draw();
	}
}
